package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
	"strings"
)

func main() {
	// 连接到服务器
	conn, err := net.Dial("tcp", "localhost:8080")
	if err != nil {
		fmt.Println("连接失败:", err)
		return
	}
	defer conn.Close()

	// 使用goroutine读取服务器响应
	go func(conn net.Conn) {
		reader := bufio.NewReader(conn)
		for {
			message, err := reader.ReadString('\n')
			if err != nil {
				fmt.Println("读取服务器响应失败:", err)
				return
			}
			fmt.Print(message)
		}
	}(conn)

	// 从标准输入读取用户输入并发送给服务器
	inputReader := bufio.NewReader(os.Stdin)
	for {
		fmt.Print("请输入消息：")
		text, _ := inputReader.ReadString('\n')
		text = strings.TrimSpace(text)
		if strings.ToLower(text) == "exit" {
			fmt.Println("退出客户端")
			break
		}

		// 发送消息给服务器
		_, err = conn.Write([]byte(text + "\n"))
		if err != nil {
			fmt.Println("发送消息失败:", err)
			return
		}
	}
}
